<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var arr = [1, 2, 3, 1, 1, 1, 2, 2, 3, 3, 4]
        //  利用reduce方法，pre为空对象，通过判断pre对象中是否有cur这个属性
        //  如果有则属性值+1，没有则赋值1
        //  返回res这个包含数字出现几次的对象
        var res = arr.reduce(function(pre, cur) {
            if (pre[cur]) {
                pre[cur] += 1
            } else {
                pre[cur] = 1
            }
            return pre
        }, {})
        //  遍历对象 打印结果
        for (var key in res) {
            console.log('数字' + key + '出现了' + res[key] + '次')
        }
    </script>
</body>

</html>